package cn.com.hhrcw.utils.huawei;

import lombok.Data;

import java.util.List;

/**
 * @program: recruit-boot-parent
 * @author: JD
 * @create: 2021-03-08 15:43
 **/
@Data
public class CreateMeetingParam {

    /**
     * 创建会议类型（默认为普通会议）。0 : 普通会议。1：周期会议，此时“cycleParams”必须填写。
     */
    private Integer conferenceType;

    /**
     * 会议开始时间（UTC时间）。 创建预约会议时，如果没有指定开始时间或填空串，则表示会议马上开始。
     */
    private String startTime;

    /**
     * 会议持续时长，单位分钟，最大值为1440，最短15。default: 30。
     */
    private Long length;

    /**
     * 会议主题。长度限制为128个字符。
     */
    private String subject;

    /**
     * 会议的媒体类型。
     * 由1个或多个枚举String组成，多个枚举时，每个枚举值之间通过“，”逗号分隔，枚举值如下：
     * "Voice”：语音。
     * "Video”：标清视频。
     * "HDVideo”：高清视频（与Video互斥，如果同时选择Video、HDVideo，则系统默认选择Video）。
     * "Telepresence”：智真(与HDVideo、Video互斥，如果同时选择，系统使用Telepresence)。（预留字段）
     * "Data”：多媒体（系统配置决定是否自动添加Data）
     */
    private String mediaTypes;

    /**
     * 软终端创建即时会议时在当前字段带临时群组ID，由服务器在邀请其他与会者时在或者conference-info头域中携带。 长度限制为31个字符。
     */
    private String groupuri;

    /**
     * 与会者信息 *
     */
    private List<Attendee> attendees;

    /**
     * 周期会议的参数，当会议是周期会议的时候该参数必须填写，否则服务器忽略该参数。
     * 该参数包括周期会议的开始日期、结束日期、会议的周期和周期中的开会时间点。
     */
    private CycleParams cycleParams;

    /**
     * 会议是否自动启动录制，在录播类型为：录播、录播+直播时才生效。默认为不自动启动。
     * 1：自动启动录制。
     * 0：不自动启动录制。
     */
    private Integer isAutoRecord;

    /**
     * 会议媒体加密模式。默认值由企业级的配置填充。
     * 0：自适应加密。
     * 1 : 强制加密。
     * 2 : 不加密。
     */
    private Integer encryptMode;

    /**
     * 会议的默认语言，默认值由会议云服务定义。
     * 对于系统支持的语言，按照RFC3066规范传递。
     * zh-CN：简体中文。
     * en-US：美国英文。
     */
    private String language;

    /**
     * 开始时间的时区信息
     */
    private String timeZoneID;

    /**
     * 录播类型。默认为禁用。
     * 0: 禁用 。
     * 1: 直播 。
     * 2: 录播。
     * 3: 直播+录播。
     */
    private String recordType;

    /**
     * 主流直播地址，最大不超过255个字符，在录播类型为：直播、录播+直播时有效。
     */
    private String liveAddress;

    /**
     * 辅流直播地址，最大不超过255个字符，在录播类型为：直播、录播+直播时有效。
     */
    private String auxAddress;

    /**
     * 是否录制辅流，在录播类型为：录播、录播+直播时有效。
     * 0：不录制。
     * 1：录制。
     */
    private String recordAuxStream;

    /**
     * 会议其他配置信息。
     */
    private ConfConfigInfo confConfigInfo;

    /**
     * 录播鉴权方式，在录播类型为:录播、直播+录播时有效。
     *
     * 0：可通过链接观看/下载。
     * 1：企业用户可观看/下载。
     * 2：与会者可观看/下载。
     */
    private Integer recordAuthType;

    /**
     * 是否使用云会议室召开预约会议。默认不使用云会议室。
     *
     * 0：不使用云会议室。
     * 1：使用云会议室。
     */
    private Integer vmrFlag;

    /**
     * 用于识别用户开会时绑定的云会议室。最大长度不超过512个字符。
     * 不为空，则用ID查询云会议室信息。
     * 为空，则查用户所有云会议室，如果有个人云会议室，用个人云会议室ID；没有个人云会议室，取最小云会议室ID。
     */
    private String vmrID;

    /**
     * 会议方数，会议最大与会人数限制。
     * 0：无限制。
     * 大于0：会议最大与会人数。
     */
    private Integer concurrentParticipants;
}
